package bean;

import java.util.Date;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import model.Cliente;
import dao.DaoCliente;

@ManagedBean(name="ClienteBean")
@SessionScoped
public class ClienteBean {

	private Cliente cliente;
	private DataModel<Cliente> clientes;
	
	private Date dataNascimento;
	private DaoCliente dao = new DaoCliente();
	
	public Cliente getCliente() {return cliente;}
	public void setCliente(Cliente cliente) {this.cliente = cliente;}
	public Date getDataNascimento() {return dataNascimento;}
	public void setDataNascimento(Date d) {dataNascimento = d;}
	
	
	public DataModel<Cliente> getClientes() {
		List<Cliente> lista = dao.findAll();
		clientes = new ListDataModel<Cliente>(lista);
		return clientes;
	}
	
	public void salvar() {
		FacesContext fc = FacesContext.getCurrentInstance();
		dao.persist(cliente);
		fc.addMessage(null, new FacesMessage("Cadastro efetuado com sucesso", cliente.getNome())); 
	}
	
	public void carregaCliente(ActionEvent e){
		cliente = (Cliente)(clientes.getRowData());
	}
	
	public void criarCliente(ActionEvent e) {
		cliente = new Cliente();
	}
	public void alterarCliente(ActionEvent e) {
		FacesContext fc = FacesContext.getCurrentInstance();
		dao.merge(cliente);
		fc.addMessage(null, new FacesMessage("Cadastro alterado com sucesso", cliente.getNome())); 
	}
	
}
